security_check();
if ($resultat_session == 'c') {
header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes");
die();
} else if ($resultat_session == '0') {
header("Location: ../logout.php?auto=1");
die();
}
//log_debug('Après $session_gepi->security_check()');
if (!checkAccess()) {
header("Location: ../logout.php?auto=1");
die();
}
$_SESSION['chemin_retour'] = $_SERVER['REQUEST_URI'];
if(isset($_SESSION['retour_apres_maj_sconet'])) {
unset($_SESSION['retour_apres_maj_sconet']);
}
//debug_var();
$id_classe_demande=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL);
if(($_SESSION['statut']=='administrateur')||($_SESSION['statut']=='scolarite')) {
if((isset($_GET['mode']))&&($_GET['mode']=='update_champs_periode')&&(isset($_GET['id_classe']))) {
check_token();
$sql="SELECT * FROM periodes WHERE id_classe='".$_GET['id_classe']."' ORDER BY num_periode;";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
while($lig=mysqli_fetch_object($res)) {
echo " Une conversion des données élèves/responsables est requise. Suivez ce lien: CONVERTIR Une conversion des données élèves/responsables est requise. Suivez ce lien: CONVERTIR Une conversion des données élèves/responsables est requise. Suivez ce lien: CONVERTIR
";
}
}
die();
}
if((isset($_GET['mode']))&&($_GET['mode']=='update_champs_choix_prof_suivi')&&(isset($_GET['login_ele']))) {
check_token();
// Afficher la liste des classes en opt group, puis la liste des profs de chaque classe en mettant en couleur ceux qui sont déjà PP d'autres élèves de la classe
$sql="SELECT DISTINCT id_classe, classe FROM j_eleves_classes jec, classes c WHERE jec.login='".$_GET['login_ele']."' AND jec.id_classe=c.id ORDER BY periode;";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
echo "
";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0) {
$sql="SELECT 1=1 FROM j_eleves_classes WHERE login='".$_GET['login_ele']."' AND id_classe='$tab[0]'";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0) {
$sql="SELECT 1=1 FROM j_eleves_professeurs WHERE login='".$_GET['login_ele']."' AND id_classe='$tab[0]'";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0) {
$sql="UPDATE j_eleves_professeurs SET professeur='$tab[1]' WHERE login='".$_GET['login_ele']."' AND id_classe='$tab[0]'";
}
else {
$sql="INSERT INTO j_eleves_professeurs SET professeur='$tab[1]', login='".$_GET['login_ele']."', id_classe='$tab[0]'";
}
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if($res) {
echo civ_nom_prenom($tab[1]);
}
else {
echo "Erreur";
}
}
}
}
die();
}
}
$mode_rech=isset($_POST['mode_rech']) ? $_POST['mode_rech'] : (isset($_GET['mode_rech']) ? $_GET['mode_rech'] : NULL);
if((isset($quelles_classes))&&(isset($mode_rech))&&($mode_rech=='contient')) {
// On initialise des variables pour index_call_data.php
if($quelles_classes=='recherche') {
$mode_rech_nom="contient";
}
elseif($quelles_classes=='rech_prenom') {
$mode_rech_prenom="contient";
}
elseif($quelles_classes=='rech_elenoet') {
$mode_rech_elenoet="contient";
}
elseif($quelles_classes=='rech_ele_id') {
$mode_rech_ele_id="contient";
}
elseif($quelles_classes=='rech_no_gep') {
$mode_rech_no_gep="contient";
}
}
//log_debug('Après checkAccess()');
//log_debug(debug_var());
//debug_var();
/*if(isset($_GET['csv'])) {
check_token();
// La solution en GET ne fonctionne pas bien au niveau de l'encodage/décodage et si suhosin est actif, c'est la longueur de la chaine $_GET qui pose pb.
$nom_fic = "liste_eleve_gepi".strftime("%Y%m%d_%H%M%S").".csv";
send_file_download_headers('text/x-csv',$nom_fic);
echo urldecode($_GET['csv']);
die();
}
*/
//répertoire des photos
// En multisite, on ajoute le répertoire RNE
if (isset($GLOBALS['multisite']) AND $GLOBALS['multisite'] == 'y') {
// On récupère le RNE de l'établissement
$rep_photos='../photos/'.$_COOKIE['RNE'].'/eleves/';
//============================================
// Pour le multisite
if(!file_exists($rep_photos)) {
//@mkdir($rep_photos);
$tmp_tab=explode("/",$rep_photos);
$chemin="";
for($loop=0;$loop
";
$test_no_regime=mysqli_query($GLOBALS["mysqli"], $sql);
$test_no_regime_effectif=mysqli_num_rows($test_no_regime);
if($test_no_regime_effectif>0){
$nb_reg_regime=0;
$nb_err_regime=0;
while($lig_reg=mysqli_fetch_object($test_no_regime)) {
$sql="INSERT INTO j_eleves_regime SET login='".$lig_reg->login."', regime='".$_GET['initialiser_regimes']."';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if($insert) {$nb_reg_regime++;} else {$nb_err_regime++;}
}
$msg="";
if($nb_reg_regime>0) {
$msg.="$nb_reg_regime régime(s) ont été initialisés.
";
}
if($nb_err_regime>0) {
$msg.="$nb_err_regime erreur(s) se sont produites lors de l'initialisation des régimes.
";
}
}
else {
$msg="Tous les régimes étaient déjà renseignés.
";
}
}
$gepi_prof_suivi=getSettingValue('gepi_prof_suivi');
if($_SESSION['statut']=="professeur") {
if(getSettingValue('GepiAccesGestElevesProfP')!='yes') {
tentative_intrusion("2", "Tentative d'accès par un prof à des fiches élèves, sans en avoir l'autorisation.");
echo "Vous ne pouvez pas accéder à cette page car l'accès professeur n'est pas autorisé !";
require ("../lib/footer.inc.php");
die();
}
else {
// Le professeur est-il professeur principal dans une classe au moins.
$sql="SELECT 1=1 FROM j_eleves_professeurs WHERE professeur='".$_SESSION['login']."';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if (mysqli_num_rows($test)==0) {
tentative_intrusion("2", "Tentative d'accès par un prof qui n'est pas $gepi_prof_suivi à des fiches élèves, sans en avoir l'autorisation.");
echo "Vous ne pouvez pas accéder à cette page car vous n'êtes pas $gepi_prof_suivi !";
require ("../lib/footer.inc.php");
die();
}
}
}
if (isset($is_posted) and ($is_posted == '2')) {
//$tab_id_classe_quelles_classes=array();
if ($quelles_classes == 'certaines') {
//
// On efface les enregistrements liés à la session en cours
//
$sql="DELETE FROM tempo WHERE num = '".SESSION_ID()."';";
//echo "$sql
";
mysqli_query($GLOBALS["mysqli"], $sql);
//
// On efface les enregistrements obsolètes
//
$sql="SELECT DISTINCT num FROM tempo;";
//echo "$sql
";
$call_data = mysqli_query($GLOBALS["mysqli"], $sql);
$nb_enr = mysqli_num_rows($call_data);
$nb = 0;
//echo "\$nb_enr=$nb_enr
";
while ($nb < $nb_enr) {
$num = old_mysql_result($call_data, $nb, 'num');
$sql="SELECT * FROM log WHERE SESSION_ID = '$num';";
//echo "$sql
";
$test = mysqli_query($GLOBALS["mysqli"], $sql);
$nb_en = mysqli_num_rows($test);
if ($nb_en == 0) {
$sql="DELETE FROM tempo WHERE num = '$num'";
//echo "$sql
";
mysqli_query($GLOBALS["mysqli"], $sql);
}
$nb++;
}
$classes_list = mysqli_query($GLOBALS["mysqli"], "SELECT DISTINCT c.* FROM classes c, periodes p WHERE p.id_classe = c.id ORDER BY classe");
$nb = mysqli_num_rows($classes_list);
$i ='0';
while ($i < $nb) {
$id_classe = old_mysql_result($classes_list, $i, 'id');
$tempo = "case_".$id_classe;
$temp = isset($_POST[$tempo])?$_POST[$tempo]:NULL;
if ($temp == 'yes') {
$periode_query = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM periodes WHERE id_classe = '$id_classe' ORDER BY num_periode");
$nb_periode = mysqli_num_rows($periode_query);
$call_reg = mysqli_query($GLOBALS["mysqli"], "insert into tempo Values('$id_classe','$nb_periode', '".SESSION_ID()."')");
//$tab_id_classe_quelles_classes[]=$id_classe;
}
$i++;
}
}
}
elseif ((isset($quelles_classes))&&($quelles_classes == 'certaines')&&(isset($id_classe))&&(is_numeric($id_classe))) {
// On efface les enregistrements liés à la session en cours
//
mysqli_query($GLOBALS["mysqli"], "DELETE FROM tempo WHERE num = '".SESSION_ID()."'");
//
// On efface les enregistrements obsolètes
//
$call_data = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM tempo");
$nb_enr = mysqli_num_rows($call_data);
$nb = 0;
while ($nb < $nb_enr) {
$num = old_mysql_result($call_data, $nb, 'num');
$test = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM log WHERE SESSION_ID = '$num'");
$nb_en = mysqli_num_rows($test);
if ($nb_en == 0) {
mysqli_query($GLOBALS["mysqli"], "DELETE FROM tempo WHERE num = '$num'");
}
$nb++;
}
$periode_query = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM periodes WHERE id_classe = '$id_classe' ORDER BY num_periode");
$nb_periode = mysqli_num_rows($periode_query);
$call_reg = mysqli_query($GLOBALS["mysqli"], "insert into tempo Values('$id_classe','$nb_periode', '".SESSION_ID()."')");
}
// Le statut scolarite ne devrait pas être proposé ici.
// La page confirm_query.php n'est accessible qu'en administrateur
if(($_SESSION['statut']=="administrateur")||($_SESSION['statut']=="scolarite")) {
if (isset($is_posted) and ($is_posted == '1')) {
check_token();
$delete_eleve=isset($_POST['delete_eleve']) ? $_POST['delete_eleve'] : array();
if(!is_array($delete_eleve)) {$delete_eleve=array();$msg="Erreur: La liste d'élèves à supprimer devrait être un tableau.
";}
$calldata = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM eleves");
$nombreligne = mysqli_num_rows($calldata);
$i = 0;
$liste_cible = '';
$liste_cible2 = '';
while ($i < $nombreligne){
$eleve_login = old_mysql_result($calldata, $i, "login");
$eleve_elenoet = old_mysql_result($calldata, $i, "elenoet");
//$delete_login = 'delete_'.$eleve_login;
//$del_eleve = isset($_POST[$delete_login])?$_POST[$delete_login]:NULL;
//if ($del_eleve == 'yes') {
if(in_array($eleve_login,$delete_eleve)) {
$liste_cible = $liste_cible.$eleve_login.";";
$liste_cible2 = $liste_cible2.$eleve_elenoet.";";
}
$i++;
}
//header("Location: ../lib/confirm_query.php?liste_cible=$liste_cible&action=del_eleve");
if($liste_cible!=''){
header("Location: ../lib/confirm_query.php?liste_cible=$liste_cible&liste_cible2=$liste_cible2&action=del_eleve".add_token_in_url(false));
}
}
}
// pour l'envoi des photos du trombinoscope
if (empty($_POST['action']) and empty($_GET['action'])) { $action = ""; }
else { if (empty($_POST['action'])){$action = ""; } if (empty($_GET['action'])){$action = $_POST['action'];} }
if (empty($_POST['total_photo']) and empty($_GET['total_photo'])) { $total_photo = ""; }
else { if (empty($_POST['total_photo'])){$total_photo = ""; } if (empty($_GET['total_photo'])){$total_photo = $_POST['total_photo'];} }
if (empty($_FILES['photo'])) { $photo = ""; } else { $photo = $_FILES['photo']; }
if (empty($_POST['quiestce'])) { $quiestce = ""; } else { $quiestce = $_POST['quiestce']; }
function deplacer_fichier_upload($source, $dest) {
$ok = @copy($source, $dest);
if (!$ok) $ok = @move_uploaded_file($source, $dest);
return $ok;
}
function test_ecriture_backup() {
$ok = 'no';
if ($f = @fopen($rep_photos."test", "w")) {
@fputs($f, '<'.'?php $ok = "yes"; ?'.'>');
@fclose($f);
include($rep_photos."test");
$del = @unlink($rep_photos."test");
}
return $ok;
}
if (isset($action) and ($action == 'depot_photo') and $total_photo != 0) {
check_token();
$msg="";
$cpt_photos_mises_en_place=0;
$cpt_photo = 0;
while($cpt_photo < $total_photo)
{
//echo "\$quiestce[$cpt_photo]=".$quiestce[$cpt_photo]."
";
if((isset($_FILES['photo']['type'][$cpt_photo]))&&($_FILES['photo']['type'][$cpt_photo] != ""))
{
unset($login_eleve);
$acces_upload_photo="y";
if(($_SESSION['statut']=='cpe')&&(!getSettingAOui('CpeAccesUploadPhotosEleves'))) {
$acces_upload_photo="n";
}
elseif(($_SESSION['statut']=='professeur')&&(!getSettingAOui('GepiAccesGestPhotoElevesProfP'))) {
$acces_upload_photo="n";
}
elseif($_SESSION['statut']=='professeur') {
// Les PP ont accès à l'upload de photo de leurs élèves
// Le prof est-il PP de cet élève ou de la classe de cet élève
// Récupérer le login et la classe de l'élève
$sql="SELECT login FROM eleves WHERE elenoet='".$quiestce[$cpt_photo]."';";
$res_login=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_login)==0) {
$msg.="Anomalie : Impossible de trouver le login de l'élève dont l'ELENOET est ".$quiestce[$cpt_photo]."
";
$acces_upload_photo="n";
}
else {
$login_eleve=old_mysql_result($res_login, 0, "login");
if(!is_pp($_SESSION['login'], "", $login_eleve)) {
// Le prof n'est pas PP de cet élève en particulier
// A-t-il accès à tous les élèves de la classe dont-il est PP?
if(!getSettingAOui('GepiAccesPPTousElevesDeLaClasse')) {
$acces_upload_photo="n";
}
else {
$acces_upload_photo="n";
// On cherche alors la classe de l'élève
$sql="SELECT DISTINCT jec.id_classe FROM j_eleves_classes jec, classes c WHERE jec.id_classe=c.id AND jec.login='$login_eleve' ORDER BY periode,classe;";
$res_class=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_class)>0){
while($lig_tmp=mysqli_fetch_object($res_class)){
if(is_pp($_SESSION['login'], $lig_tmp->id_classe)) {
$acces_upload_photo="y";
break;
}
}
}
}
}
}
}
if($acces_upload_photo!="y") {
if(!isset($login_eleve)) {
$sql="SELECT login FROM eleves WHERE elenoet='".$quiestce[$cpt_photo]."';";
$res_login=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_login)==0) {
$msg.="Anomalie : Impossible de trouver le login de l'élève dont l'ELENOET est ".$quiestce[$cpt_photo]."
";
}
else {
$login_eleve=old_mysql_result($res_login, 0, "login");
$msg.="Vous n'avez pas le droit d'uploader la photo pour ".civ_nom_prenom($login_eleve)."
";
}
}
else {
$msg.="Vous n'avez pas le droit d'uploader la photo pour ".civ_nom_prenom($login_eleve)."
";
}
}
else {
$sav_photo = isset($_FILES["photo"]) ? $_FILES["photo"] : NULL;
if (!isset($sav_photo['tmp_name'][$cpt_photo]) or ($sav_photo['tmp_name'][$cpt_photo] =='')) {
$msg.="Erreur de téléchargement niveau 1 (photo n°$cpt_photo).
";
} else if (!file_exists($sav_photo['tmp_name'][$cpt_photo])) {
$msg.="Erreur de téléchargement niveau 2 (photo n°$cpt_photo).
";
} else if (my_strtolower($sav_photo['type'][$cpt_photo])!="image/jpeg") {
$msg.="Erreur : seuls les fichiers ayant l'extension .jpg sont autorisés (".$sav_photo['name'][$cpt_photo]." : ".$sav_photo['type'][$cpt_photo].")
";
} else if (!(preg_match('/jpg$/i',$sav_photo['name'][$cpt_photo]) || preg_match('/jpeg$/i',$sav_photo['name'][$cpt_photo]))) {
$msg.="Erreur : seuls les fichiers ayant l'extension .jpg ou .jpeg sont autorisés (".$sav_photo['name'][$cpt_photo].")
";
} else {
$dest = $rep_photos;
$n = 0;
//$msg.="\$rep_photos=$rep_photos
";
if (!deplacer_fichier_upload($sav_photo['tmp_name'][$cpt_photo], $rep_photos.encode_nom_photo($quiestce[$cpt_photo]).".jpg")) {
$msg.="Problème de transfert : le fichier n°$cpt_photo n'a pas pu être transféré sur le répertoire photos/eleves/
";
} else {
//$msg = "Téléchargement réussi.";
$cpt_photos_mises_en_place++;
if (getSettingValue("active_module_trombinoscopes_rd")=='y') {
// si le redimensionnement des photos est activé on redimensionne
if (getSettingValue("active_module_trombinoscopes_rt")!='')
$redim_OK=redim_photo($rep_photos.encode_nom_photo($quiestce[$cpt_photo]).".jpg",getSettingValue("l_resize_trombinoscopes"), getSettingValue("h_resize_trombinoscopes"),getSettingValue("active_module_trombinoscopes_rt"));
else
$redim_OK=redim_photo($rep_photos.encode_nom_photo($quiestce[$cpt_photo]).".jpg",getSettingValue("l_resize_trombinoscopes"), getSettingValue("h_resize_trombinoscopes"));
if (!$redim_OK) $msg .= " Echec du redimensionnement de la photo.";
}
}
}
}
}
$cpt_photo = $cpt_photo + 1;
}
if(($msg=="")&&($cpt_photos_mises_en_place>0)) {$msg = "Téléchargement réussi.";}
}
// fin de l'envoi des photos du trombinoscope
//**************** EN-TETE *****************
$titre_page = "Gestion des élèves";
require_once("../lib/header.inc.php");
//************** FIN EN-TETE *****************
if(getSettingValue('eleves_index_debug_var')=='y') {
debug_var();
}
?>
\$id_classe_demande=$id_classe_demande
";
*/
echo "";
$sql="SELECT 1=1 FROM responsables";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0){
echo "
";
echo "Changement d'établissement: Export des bulletins\n";
echo " et Import des bulletins\n";
}
echo "
Visualiser \ modifier une fiche élève
Attention : il n'y a aucun élève dans la base GEPI !
\n"; if(($_SESSION['statut']=="administrateur")||($_SESSION['statut']=="scolarite")){ echo "Vous pouvez ajouter des élèves à la base en cliquant sur l'un des liens ci-dessus";
if($_SESSION['statut']=="administrateur") {
echo ", ou bien directement
importer les élèves et les classes à partir de fichiers GEP
Vous n'êtes pas $gepi_prof_suivi
\n"; // AJOUTER UN RENSEIGNEMENT test_intrusion... (normalement c'est fait plus haut) require("../lib/footer.inc.php"); die(); } elseif($nb_classes==1){ $lig_clas=mysqli_fetch_object($call_classes); $quelles_classes=$lig_clas->id; } else{ // Choix de la classe... // Affichage sur 3 colonnes $nb_classes_par_colonne=round($nb_classes/2); echo "\n"; echo " | \n"; while($lig_clas=mysqli_fetch_object($call_classes)) { //affichage 2 colonnes if(($cpt_i>0)&&(round($cpt_i/$nb_classes_par_colonne)==$cpt_i/$nb_classes_par_colonne)){ echo " | \n"; echo "\n";
}
echo "id'>$lig_clas->classe";
echo " \n"; $cpt_i++; } echo " | \n";
echo "